#ifndef __UTILSTEST_H__
#define __UTILSTEST_H__

/* Framework files */
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/portability/Stream.h>

/* Unit Under Test (UUT) files */
#include "utils.h"

/* Test objects */
class ListTest : public CPPUNIT_NS::TestFixture
{
	CPPUNIT_TEST_SUITE( ListTest );
	CPPUNIT_TEST( testMerge );
	CPPUNIT_TEST( testEmpty );
	CPPUNIT_TEST_SUITE_END();
	protected:
	DnaSeq	*lstA;
	DnaSeq	*refLstA;
	DnaSeq	*lstB;
	DnaSeq	*refLstB;

	public:
	ListTest();
	void setUp();
	void tearDown();
	void testMerge();
	void testEmpty();
};

class NuclTest : public CPPUNIT_NS::TestFixture
{
	CPPUNIT_TEST_SUITE( NuclTest );
	CPPUNIT_TEST( testCompactFormat );
	CPPUNIT_TEST( testUncompactFormat );
	CPPUNIT_TEST(testArrayPos );
	CPPUNIT_TEST( testCharPos );
	CPPUNIT_TEST( testGetNucleotide );
	CPPUNIT_TEST( testSetNucleotide );
	CPPUNIT_TEST( testDnaSeqConv2String );
	CPPUNIT_TEST_SUITE_END();
	protected:

	public:
	NuclTest();
	void setUp();
	void tearDown();
	void testCompactFormat();
	void testUncompactFormat();
	void testArrayPos();
	void testCharPos();
	void testGetNucleotide();
	void testSetNucleotide();
	void testDnaSeqConv2String();
};

#endif /* __UTILSTEST_H__ */
